package com.huitone.gddw.service.monitoring.base;

import java.util.List;

import com.huitone.gddw.dao.entity.ItemKeyDef;
import com.huitone.gddw.dao.entity.ObjItemProperty;
import com.huitone.gddw.model.support.QueryPage;
import com.huitone.gddw.service.dto.monitoring.base.ItemKeyDefDTO;

/**
 * 对象子项属性管理 接口
 * @author wuluodan
 *
 */
public interface IItemKeyDefService {

	/**
	 * 分页查询
	 * @param page
	 * @return QueryPage<ItemKeyDefDTO>
	 */
	QueryPage<ItemKeyDefDTO> selectPage(QueryPage<ItemKeyDef> page);
	
	/**
	 * 根据ID获取唯一记录
	 * @param keyId 键ID
	 * @return ItemKeyDef
	 */
	ItemKeyDef getById(String itemId);
	
	/**
	 * 获取指定子项下的所有属性信息
	 * @param itemId 子项ID
	 * @return List<ObjItemProperty>
	 */
	List<ObjItemProperty> getByItemId(String itemId);
	
	/**
	 * 删除指定对象下的所有属性信息
	 * @param objId 对象ID
	 */
	void delByObjId(String objId);

	/**
	 * 删除指定子项下的所有属性信息
	 * @param itemId 子项ID
	 */
	void delByItemId(String itemId);
	
	/**
	 * 根据属性ID获取信息
	 * @param keyId 键ID
	 * @return ItemKeyDefDTO
	 */
	ItemKeyDefDTO findOne(String keyId);
	
	/**
	 * 保存
	 * @param entity ItemKeyDef
	 */
	void save(ItemKeyDef entity);
	
	/**
	 * 更新
	 * @param entity ItemKeyDef
	 */
	void update(ItemKeyDef entity);
	
	/**
	 * 删除
	 * @param keyId 键ID
	 */
	void delete(String keyId);
	
}
